package main

import "fmt"

// 某些情况下 我们需要同时从多个通道接收数据  可以使用select 多路复用
func main() {
	// 定义第一个管道
	ch1 := make(chan int, 10)
	for i := 0; i < 10; i++ {
		ch1 <- i
	}

	//定义第二个管道
	ch2 := make(chan string, 10)
	for i := 0; i < 10; i++ {
		ch2 <- fmt.Sprintf("写入第%v条数据", i)
	}

	// 多路复用
	//使用select来获取channel里面的数据的时候不需要关闭channel
	//for {
	//	select {
	//	case v := <-ch1:
	//		fmt.Println(v)
	//	case v := <-ch2:
	//		fmt.Println(v)
	//	default:
	//		fmt.Println("执行完毕")
	//		return
	//	}
	//}
}
